# 使用私有化属性的场景：
# 1.把特定的属性隐藏起来，仅供内部使用，不想让类的外部进行直接调用。
# 2.保护属性，不想让属性的值随意的改变。
# 3.保护属性，不想让子类继承。
# 语法：两个下划线__开头，
# 声明该属性为私有，不能在类的外部被使用或直接访问。
class Person:
    __hobby='跳舞'#私有化类属性同样如此
    def __init__(self):
        self.__name='李四'#属性名字前面加两个下划线，可以定义一个私有化属性，无法在类的外部被使用或直接访问，在类的内部可以访问使用
        self.age=30
        pass
    def __str__(self):
        '''
        私有化的属性在类内部可以使用 self.__name
        :return:
        '''
        return '{}的年龄是{}'.format(self.__name,self.age)#访问私有化实例属性
class Student(Person):
    pass
print(Person.__hobby)#无法通过类对象在外部访问
xl=Person()
# print(xl.__name)#也无法通过实例对象在外部访问
print(xl)#类的内部可以随意访问
student=Student()
# print(student.__name)#子类无法继承父类私有化属性
